7F010608	initialize MP menu
ADDIU	SP,SP,FFE0
SW	S0,0018 (SP)
SLTI	AT,A0,0002
OR	S0,A0,R0	//S0=A0=#players
BEQ	AT,R0,7F010624	//if #players<2, set to 2
SW	RA,001C (SP)
ADDIU	S0,R0,0002	//S0=2
//7F010624:	
LUI	V0,8003
ADDIU	V0,V0,B520
SW	S0,0000 (V0)	//save #players
//7F010630:	
OR	V1,R0,R0	//V1=0=counter
BLEZ	S0,7F0106A8
OR	A2,S0,R0	//A2=S0=player#
LUI	A1,8003
LUI	T2,8007
LUI	T0,8007
ADDIU	T0,T0,97A8	//T0=800697A8=handicap
ADDIU	T2,T2,97B8	//T2=800697B8=control style
ADDIU	A1,A1,B524	//A1=8002B524=MP character
OR	A0,R0,R0	//A0=offset to player's data 
ADDIU	T1,R0,0005	//T1=5
ADDIU	A3,R0,FFFF	//A3=-1
//7F010660:	set character and handicap if still default
LW	T6,0000 (A1)	//T6=char
ADDU	T7,T0,A0	//T7=addy of player's handicap
SLTI	AT,S0,0003	//TRUE if 4-players
BNE	A3,T6,7F01067C	//skip if a character has been selected
ADDU	V0,T2,A0	//V0=addy of player's control style
SW	V1,0000 (A1)	//V1->character slot (incrementally bond, nat, etc.)
SW	T1,0000 (T7)	//5->handicap (default normal damage)
//7F01067C:	set control setting to default
BNE	AT,7F010698
ADDIU	V1,V1,0001	//inc next char
LW	T8,0000 (V0)	//T8=control style
SLTI	AT,T8,0004	//TRUE if setting is valid
BNEL	AT,R0,7F01069C
SLT	AT,V1,A2
SW	R0,0000 (V0)
SLT	AT,V1,A2
//7F01069C:	loopus
ADDIU	A0,A0,0004	//next player data increment
BNEZ	AT,7F010660	//more players!
ADDIU	A1,A1,0004
//7F0106A8:	set scenario to default
LUI	T9,8003
LW	T9,B540 (T9)	//T9=8002B540=scenario
LUI	T4,8003
ADDIU	T4,T4,B054	//T4=8002B054 (table of text, min/max players)
SLL	T3,T9,0x2	//T3=scenario->offset
ADDU	V0,T3,T4	//V0=8002B054+
LBU	T5,0003 (V0)	//T5=max players
SLT	AT,T5,A2	//TRUE if < max
BNEZ	AT,7F0106E0
NOP
LBU	T6,0002 (V0)	//T6=min players
SLT	AT,A2,T6	//TRUE if < min
BEQ	AT,R0,7F0106F0
NOP
//7F0106E0:	bad bad rubber piggy - RESET ALL MP VALUES
JAL	7F010468	//sets defaults for each scenario type
OR	A0,R0,R0	//A0=0
LUI	A2,8003
LW	A2,B520 (A2)	//A2=8002B520=#players
LUI	V0,8003
ADDIU	V0,V0,B534	//V0=8002B534
LW	T7,0000 (V0)	//T7=selected MP stage
LUI	T9,8003
//7F010700:	45230
ADDIU	T3,R0,0001	//T3=1
SLL	T8,T7,0x2
SUBU	T8,T8,T7
SLL	T8,T8,0x3	//T8=MPstage*0x18
ADDU	T9,T9,T8
LW	T9,B088 (T9)	//T9=8002B088+	MPstage max players
SLT	AT,T9,A2	//TRUE if stage selectable w/ player total
BEQL	AT,R0,7F01072C
LW	RA,001C (SP)
SW	T3,0000 (V0)	//default stage to Temple
//7F01072C:
LW	S0,0018 (SP)
ADDIU	SP,SP,0020
JR	RA
NOP
++++++++++++++++++++++++++++++++
move to next MP game length setting...
only called in one place: 0x459A4.  set to JAL 7F010188 to disable flag test
0FC0405C->0FC04062

7F010170:	test for flag tag...
	
3C0E8003	LUI	T6,8003
8DCEB540	LW	T6,B540 (T6)	T6=scenario
24010002	ADDIU	AT,R0,0002
3C028003	LUI	V0,8003
11C1000B	BEQ	T6,AT,7F0101B0	if flag tag, see below
2442B538	ADDIU	V0,V0,B538	V0=8002B538	selected game length
//7F010188:	roll over selection if 7...
3C028003	LUI	V0,8003
2442B538	ADDIU	V0,V0,B538	V0=8002B538
8C4F0000	LW	T7,0000 (V0)	T7=selected game length
24010007	ADDIU	AT,R0,0007	AT=unlimited->20 points
25F80001	ADDIU	T8,T7,0001	T8=next entry
0301001A	DIV	T8,AT
0000C810	MFHI	T9
AC590000	SW	T9,0000 (V0)	7%length.  clever.
03E00008	JR	RA
00000000	NOP
//7F0101B0:	The Living Daylights
8C480000	LW	T0,0000 (V0)	T0=selected game length
25090001	ADDIU	T1,T0,0001	T1=length++
05210004	BGEZ	T1,7F0101CC
312A0003	ANDI	T2,T1,0003	if new is 1-3, you're okay...
11400002	BEQ	T2,R0,7F0101CC
00000000	NOP
254AFFFC	ADDIU	T2,T2,FFFC	else, -4 to rollover into 0
//7F0101CC:
AC4A0000	SW	T2,0000 (V0)
03E00008	JR	RA
00000000	NOP

++++++++++++++++++++++++++++++++
-7F010468:	reset MP options.  Accepts A0=scenario
	this resets when a scenario is selected, locking options
	0x44F98-E
3C038003	LUI	V1,8003
2463B540	ADDIU	V1,V1,B540	//V1=8002B540=scenario
24020001	ADDIU	A0,R0,0001
AC640000	SW	A0,0000 (V1)	//A0->scenario
3C018003	LUI	AT,8003
AC22B544	SW	V0,B544 (AT)	//UNlock stage select
3C018003	LUI	AT,8003
AC22B548	SW	V0,B548 (AT)	//UNlock game length
3C018003	LUI	AT,8003
AC22B54C	SW	V0,B54C (AT)	//UNlocK characters
3C018003	LUI	AT,8003
AC22B550	SW	V0,B550 (AT)	//UNlock weapon select
3C018003	LUI	AT,8003
AC22B554	SW	V0,B554 (AT)	//UNlock health
3C018003	LUI	AT,8003
AC22B558	SW	V0,B558 (AT)	//UNlock control style
3C018003	LUI	AT,8003
AC22B55C	SW	V0,B55C (AT)	//UNlock aim adjustment
8C6E0000	LW	T6,0000 (V1)	//T6=scenario
27BDFFE8	ADDIU	SP,SP,FFE8
AFBF0014	SW	RA,0014 (SP)
2DC10008	SLTIU	AT,T6,0008	//TRUE if valid scenario
1020004D	BEQ	AT,R0,7F0105F8
000E7080	SLL	T6,T6,0x2	//T6=scenario->offset
3C018005	LUI	AT,8005
002E0821	ADDU	AT,AT,T6
8C2E1A60	LW	T6,1A60 (AT)	//T6=80051A60+	
01C00008	JR	T6
00000000	NOP

-7F0104DC:	normal and team settings
	0x4500C-E
3C028003	LUI	V0,8003
2442B538	ADDIU	V0,V0,B538
8C4F0000	LW	T7,0000 (V0)	//T7=8002B538=game length
29E10007	SLTI	AT,T7,0007	//TRUE if valid
14200002	BNEZ	AT,7F0104F8
24180002	ADDIU	T8,R0,0002	//set time default (5 minutes?)
AC580000	SW	T8,0000 (V0)
//7F0104F8
0FC3198F	JAL	7F0C663C	//returns V0=weapon set
00000000	NOP
2841000E	SLTI	AT,V0,000E	//TRUE if valid
5420003D	BNEL	AT,R0,7F0105FC
8FBF0014	LW	RA,0014 (SP)
0FC3198C	JAL	7F0C6630	//reset weapon set to D (Golden Gun)
2404000D	ADDIU	A0,R0,000D	//A0=D
10000039	BEQ	R0,R0,7F0105FC
8FBF0014	LW	RA,0014 (SP)

-7F01051C:	You Only Live Twice
	0x4504C-E
3C028003	LUI	V0,8003
2442B538	ADDIU	V0,V0,B538	//V0=8002B538=game length
24190007	ADDIU	T9,R0,0007
0FC3198F	JAL	7F0C663C	//returns V0=weapon set
AC590000	SW	T9,0000 (V0)	//save 'last alive'
2841000E	SLTI	AT,V0,000E	//TRUE if valid weapon set
14200003	BNEZ	AT,7F010544
00000000	NOP
0FC3198C	JAL	7F0C6630	//reset weapon set to GG
2404000D	ADDIU	A0,R0,000D
//7F010544
3C018003	LUI	AT,8003
1000002B	BEQ	R0,R0,7F0105F8
AC20B548	SW	R0,B548 (AT)	//lock game length

-7F010550:	The Living Daylights
	0x45080-E
3C028003	LUI	V0,8003
2442B538	ADDIU	V0,V0,B538	//V0=8002B538
8C480000	LW	T0,0000 (V0)	//T0=game length
24090002	ADDIU	T1,R0,0002	//T1=2
29010004	SLTI	AT,T0,0004	//TRUE if a time-only selection
14200002	BNEZ	AT,7F010570
00000000	NOP
AC490000	SW	T1,0000 (V0)	//reset time (10 minutes?)
//7F010570
0FC3198F	JAL	7F0C663C	//returns V0=weapon set
00000000	NOP
2841000E	SLTI	AT,V0,000E	//TRUE if a valid weapon set
5420001F	BNEL	AT,R0,7F0105FC
8FBF0014	LW	RA,0014 (SP)
0FC3198C	JAL	7F0C6630	//reset weapon set to GG
2404000D	ADDIU	A0,R0,000D
1000001B	BEQ	R0,R0,7F0105FC
8FBF0014	LW	RA,0014 (SP)

-7F010594:	Man With the Golden Gun
	0x450C4-E
3C028003	LUI	V0,8003
2442B538	ADDIU	V0,V0,B538	//V0=8002B538=game length
8C4A0000	LW	T2,0000 (V0)	//T2=game length
240B0002	ADDIU	T3,R0,0002
29410007	SLTI	AT,T2,0007	//TRUE if valid length
14200002	BNEZ	AT,7F0105B4
00000000	NOP
AC4B0000	SW	T3,0000 (V0)	//reset time (10 minutes?)
//7F0105B4
0FC3198C	JAL	7F0C6630	//reset weapon set to Golden Gun
2404000D	ADDIU	A0,R0,000D
3C018003	LUI	AT,8003
1000000D	BEQ	R0,R0,7F0105F8
AC20B550	SW	R0,B550 (AT)	//lock weapon select

-7F0105C8:	Licence to Kill
	0x450F8-E
3C028003	LUI	V0,8003
2442B538	ADDIU	V0,V0,B538	//V0=8002B538=game length
8C4C0000	LW	T4,0000 (V0)	//T4=game length
240D0002	ADDIU	T5,R0,0002
29810007	SLTI	AT,T4,0007	//TRUE if valid length
14200002	BNEZ	AT,7F0105E8
00000000	NOP
AC4D0000	SW	T5,0000 (V0)	//reset time (10 minutes?)
	//7F0105E8	0x45118-E/-J/-P
0FC3198C	JAL	7F0C6630	//reset weapon to pistols
24040001	ADDIU	A0,R0,0001
3C018003	LUI	AT,8003
AC20B554	SW	R0,B554 (AT)	//lock handicap

-7F0105F8:	return...
8FBF0014	LW	RA,0014 (SP)
27BD0018	ADDIU	SP,SP,0018
03E00008	JR	RA
00000000	NOP

=======================

7F0C6630:	stores A0->weapon set; fries AT
LUI	AT,8005
JR	RA
SW	A0,9160 (AT)	//A0=80049160

7F0C663C:	returns V0=weapon set
LUI	V0,8005
JR	RA
LW	V0,9160 (V0)	//V0=80049160
